Postée il y a 4 heures
Après la grande vague du paradigme objet en programmation, qui conduit à une organisation des données de type AoS (pour “Array of Structures”), la communauté du calcul revient progressivement au SoA (pour “Structure of Arrays”) qui se prête plus efficacement à la parallélisation des calculs de type SIMD (CPU) et SIMT (GPU), nécessaires pour des performances optimales aujourd’hui. En allant un pas plus loin, on peut construire des AoSoA (pour “Array of SoA”), qui permettent notamment de s’adapter aux hiérarchies de caches des processeurs. Curieusement, bien que très pratiquées pour optimiser le calcul intensif, ces approches ont fait l’objet de peu de recherches et de publications dans le milieu de la recherche en informatique [1].
En physique des particules, chercheurs et ingénieurs étudient des optimisations similaires [2] en les adaptant aux problématiques spécifiques du calcul à haut débit (HTC), notamment en ayant fréquemment recours à des tableaux dits “jagged” [3] ou “awkward” [4], sortes d’hyper-matrices plutôt denses mais irrégulières.
Ce projet de thèse regroupe des acteurs du LISN (laboratoire de recherche en informatique), d’IJCLab et du CERN (laboratoires de physique), qui collaborent déjà sur le développement de la bibliothèque logicielle KIWAKU [5], qui permet de manipuler des vecteurs, des matrices, des tenseurs, etc.
Le doctorant sera chargé d’identifier les théories et pratiques les plus récentes en matière de AoSoA, et de voir si elles peuvent être adaptées aux structures de données irrégulières de la physique des particules. Enfin, il devra valider ses propositions dans KIWAKU ainsi que sur des cas d’usage en vraie grandeur pour la collaboration internationale LHCb, notamment pour la reconstruction des données du sous-détecteur Velo, Cette dernière ambitionne d’unifier les structures de données utilisées en variante CPU et en variante GPU, avec usage de SoA et de tableaux irréguliers multi-dimensionnels.
[1] Data layout and SIMD abstraction layers: decoupling interfaces from implementations. Sylvain Jubertie, Ian Masliah, Joel Falcou. https://hal.science/hal-01915529v1
[2] Fast and flexible data structures for the LHCb Run 3 software trigger. Sevda Esen, Arthur Marius Hennequin, Michel De Cian. https://doi.org/10.48550/arXiv.2307.03689
[3] Evolution of the ATLAS event data model for the HL-LHC. Attila Krasznahorkay, Paul Gessinger, Scott Snyder, Nicholas Swatman. https://indico.cern.ch/event/1338689/contributions/6010097/
[4] The Awkward World of Python and C++. Manasvi Goyal, Ianna Osborne, Jim Pivarski. https://arxiv.org/pdf/2303.02205
[5] Kiwaku, a C++20 library for multidimensional arrays Application to ACTS tracking. Sylvain Joube, Hadrien Grasland, David Chamont, Joël Falcou. https://hal.science/hal-04401240v1